Skip to main content

Inpainting SDXL

Inpainting in Stable Diffusion is a powerful feature that allows you to restore missing parts of an image while maintaining the overall aesthetic and consistency of the original image. It utilizes the model's ability to understand and generate photorealistic content to blend in new elements and fill in gaps, making it an invaluable tool for image restoration and creative expression.

To perform inpainting in Stable Diffusion, you'll need to provide an initial image along with a mask that outlines the areas you want to inpaint. The mask can be created manually using image editing software like MS Paint. Once the mask is ready, you can provide text prompts that describe the desired content for the inpainted regions. Stable Diffusion will then analyze the image, mask, and prompt to generate new content that seamlessly blends into the existing image.


import requests
import json
url = "https://api.imagepipeline.io/sdxl/inpainting/v1"
headers = {
"API-Key": "Your API Key"
}
data = {
"model_id": "sdxl",
"mask_image": "https://docs.imagepipeline.io/img/sdxl_maskimg.png",
"init_image": "https://docs.imagepipeline.io/img/sdxl_img2img.png",
"prompt": "The woman is holding flowers, royalty, fantasy art, 8k quality",
"negative_prompt": "error, cropped, worst quality, low quality, duplicate, blurry, (unfinished objects), stock image, artifacts, ((fused fingers)), bad hands, (((too many fingers))), (((deformed hands))), disproportional hands",
"num_inference_steps": 20,
"refiner": false,
"samples": 1,
"guidance_scale": 10,
"width": 768,
"height": 768,
"seed": 12345,
"safety_checker": true
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())

JSON Parameters

ParameterPermissible valuesNotes
model_idstrmodel_id can be found in models page. Filter by SDXL models
promptstr, 75 tokensCheck our Prompt Guide for tips
negative_promptstr, 75 tokensCheck our Prompt Guide for tips
num_inference_stepsint, [1-100]Noise is removed with each step, resulting in a higher-quality image over time. Ideal value 20-30
strengthfloat, [0-1]Optional denoise strength
samplesint, [1-4]Generates a maximum of 4 samples per API call
guidance_scalefloat, [1-20]Higher guidance scale prioritizes text prompt relevance but sacrifices image quality. Ideal value 7.5-12.5
widthintWidth in pixels. Higher than or equal to 512 for best results
heightintHeight in pixels. Higher than or equal to 512 for best results
init_imagestrAdd a publicly available link to the original image
mask_imagestrAdd a publicly available link to the image with the masked portion
seedintControlling the seed can help you generate reproducible images
safety_checkerbooleanChecks for NSFW images and filters explicit images

Status

Your response will include a status.

  • If the status = SUCCESS, you will also have download_urls that will have the links to your generated image based on the number of samples you have entered. The maximum number of samples that can be generated is 4.
  • If the status = PENDING, you will receive a id. You can use the status endpoint to fetch your image using the id.
  • If the status = FAILURE, you will receive only an error message.

Endpoint:

  • https://api.imagepipeline.io/sdxl/inpainting/v1/status/{{id}}

Pass the API-Key as the authorization in the header.